1 /*
  2 * Copyright (C) 2014 Nonki Takkahashi. All rights reserved.
  3 *
  4 * History:
  5 *  0.1 2014-01-10 Created.
  6 */
  7 
  8 /**
  9  * @fileOverview Paresr Specification - Expression Parser Spec for Jasmine
 10  * @version 0.1
 11  * @author Nonki Takahashi
 12  */
 13 
 14 describe("Parser 仕様 0.1", function() {
 15  
 16   it("Expression(\"2-1\").expression() は 1 を返す", function() {
 17     var e = new Expression("2-1");
 18     expect(e.expression()).toEqual(1);
 19   });
 20 
 21   it("Expression(\"1.5+2.4\").expression() は 3.9 を返す", function() {
 22     var e = new Expression("1.5+2.4");
 23     expect(e.expression()).toEqual(3.9);
 24   });
 25 
 26   it("Expression(\"123*56\").expression() は 6888 を返す", function() {
 27     var e = new Expression("123*56");
 28     expect(e.expression()).toEqual(6888);
 29   });
 30 
 31   it("Expression(\"91/2\").expression() は 45.5 を返す", function() {
 32     var e = new Expression("91/2");
 33     expect(e.expression()).toEqual(45.5);
 34   });
 35 
 36   it("Expression(\"2.-1\").expression() は 1 を返す", function() {
 37     var e = new Expression("2.-1");
 38     expect(e.expression()).toEqual(1);
 39   });
 40 
 41   it("Expression(\"1+1\").expression() は 2 を返す", function() {
 42     var e = new Expression("1+1");
 43     expect(e.expression()).toEqual(2);
 44   });
 45 
 46   it("Expression(\"3-1+2\").expression() は 4 を返す", function() {
 47     var e = new Expression("3-1+2");
 48     expect(e.expression()).toEqual(4);
 49   });
 50 
 51   it("Expression(\"(3-1+2\").expression() は null を返す", function() {
 52     var e = new Expression("(3-1+2");
 53     expect(e.expression()).toEqual(null);
 54   });
 55 
 56   it("Expression(\"3-1+2\").term() は 3 を返す", function() {
 57     var e = new Expression("3-1+2");
 58     expect(e.term()).toEqual(3);
 59   });
 60 
 61   it("Expression(\"3*1/2\").term() は 1.5 を返す", function() {
 62     var e = new Expression("3*1/2");
 63     expect(e.term()).toEqual(1.5);
 64   });
 65 
 66   it("Expression(\"(3-1+2\").term() は null を返す", function() {
 67     var e = new Expression("(3-1+2");
 68     expect(e.term()).toEqual(null);
 69   });
 70 
 71   it("Expression(\"(2-1)*2\").factor() は 1 を返す", function() {
 72     var e = new Expression("(2-1)*2");
 73     expect(e.factor()).toEqual(1);
 74   });
 75 
 76   it("Expression(\"(2.-1)*2\").factor() は 1 を返す", function() {
 77     var e = new Expression("(2.-1)*2");
 78     expect(e.factor()).toEqual(1);
 79   });
 80 
 81   it("Expression(\"(-2.-1)*2\").factor() は -3 を返す", function() {
 82     var e = new Expression("(-2.-1)*2");
 83     expect(e.factor()).toEqual(-3);
 84   });
 85 
 86   it("Expression(\"(-2.-1*2\").factor() は null を返す", function() {
 87     var e = new Expression("(-2.-1*2");
 88     expect(e.factor()).toEqual(null);
 89   });
 90 
 91   it("Expression(\"3.5-1+2\").real() は 3.5 を返す", function() {
 92     var e = new Expression("3.5-1+2");
 93     expect(e.real()).toEqual(3.5);
 94   });
 95 
 96   it("Expression(\".5-1+2\").real() は .5 を返す", function() {
 97     var e = new Expression(".5-1+2");
 98     expect(e.real()).toEqual(.5);
 99   });
100 
101   it("Expression(\"-2.-1+2\").real() は -2. を返す", function() {
102     var e = new Expression("-2.-1+2");
103     expect(e.real()).toEqual(-2.);
104   });
105 
106   it("Expression(\"2.\").real() は 2. を返す", function() {
107     var e = new Expression("2.");
108     expect(e.real()).toEqual(2.);
109   });
110 
111   it("Expression(\"..3-1+2\").real() は null を返す", function() {
112     var e = new Expression("..3-1+2");
113     expect(e.real()).toEqual(null);
114   });
115 
116   it("Expression(\"1.5+2\").integer() は 1 を返す", function() {
117     var e = new Expression("1.5+2");
118     expect(e.integer()).toEqual(1);
119   });
120 
121   it("Expression(\".5+2\").integer() は null を返す", function() {
122     var e = new Expression(".5+2");
123     expect(e.integer()).toEqual(null);
124   });
125 
126 });
127